zsApp
.controller( 'scope',["$scope", "$http", "$state" , function( $scope, $http, $state ){
	$(".modal-backdrop").remove();
	// 储存ID
	$scope.scopesId = [];
	// 详情
	$scope.detailsInfo = {};
	// 修改
	$scope.editInfo = {};

	// 分页
	function dataRendering() {
		$scope.paginationConf = {
	        currentPage: 1,
	        totalItems: 100,
	        itemsPerPage: 10,
	        pagesLength: 15,
	        perPageOptions: [10, 20, 30, 40, 50],
	        onChange: function(){
	        	var self = this;
	        	if( (($scope.isRequestCurrentPage != self.currentPage) || ($scope.isRequestItemsPerPage != self.itemsPerPage)) && (new Date() - $scope.nowTime > 500) )
	        	{	
	        		$scope.nowTime = new Date();
					$http
					({
						url         : $scope.zsUrl+'digitalhome-boss/open/scopes/getScopesList',
						method      : 'POST',
						data        : {
						pageNumber  : self.currentPage,  
						pageSize 	: self.itemsPerPage,  
						}
					})
					.then
					(
						function success(res) {
							 angular.element(res.data.result).each(function(i) {
								var resultData = res.data.result[i];
								//资源类型;0系统资源1用户资源
								if(resultData.scopeType == '0'){
									res.data.result[i].scopeType = '系统资源';
								}
								else{
                                    res.data.result[i].scopeType = '用户资源'
								}
							});
							// 资源范围页面表格
							$scope.tabVal = res.data.result;
							// 遍历所有资源范围ID
							angular.element(res.data.result).each(function(i) {
								$scope.scopesId[i] = this.scopesId;
							});
							// 总共有多少条数据
							self.totalItems = res.data.length;

						}, 
						function error(err) {
							console.log(err);
						}
					);

					$scope.isRequestCurrentPage = self.currentPage;
					$scope.isRequestItemsPerPage = self.itemsPerPage;

				}
	        }
	    }
    }
    dataRendering();
	
	// 确定新增（新增一条资源范围数据）
	$scope.confirmNewlyAdded = function() {	
		// 新增IP规则信息（封装成JSON）
		var scopesData = {
			scopesId     : $scope.details_scopesId,
			code         : $scope.details_code,
			scopeName    : $scope.details_scope_name,
			scopeUri     : $scope.details_scope_url,
			scopeType    : $scope.details_scope_type,
			description  : $scope.details_description,
			
		}
		console.log($scope.details_description);

		$http
		({
			url         : $scope.zsUrl+'digitalhome-boss/open/scopes/add',
			method      : 'POST',
            data        : JSON.stringify(scopesData),/* 将JSON发送给服务器 */
			dataType    : 'json',
			contentType : 'application/json;charset=UTF-8',
 

 			
		}).then(function success(res) {
			console.log(res.status);
			// 操作提示
				
				
				// 重新加载页面
				$state.go("index.scopes",{},{reload:true});

		},
		function error(err){
			console.log(err);
		});
		// 关闭窗口
		$('#newlyAdded').modal('hide');
	}


	// 详情（用于展示从服务器获取的资源范围数据）
	$scope.details = function($event, $index) {
		console.log($scope.scopesId[$index]);
		$http
		({
			url    : $scope.zsUrl+'digitalhome-boss/open/scopes/getScopesInfo/'+$scope.scopesId[$index]+'',
			method : 'GET',
		})
		.then(
			function success(res) 
			{ 
				console.log(res);
				$scope.details_code        = res.data.result.code;
				$scope.details_scope_name  = res.data.result.scopeName;
				$scope.details_scope_uri   = res.data.result.scopeUri;
				 var scope_type = res.data.result.scopeType;
                if(scope_type == '0'){
                	scope_type  = '系统资源';                	
                }else{
                	scope_type  = '用户资源'; 
                }          

				$scope.details_scope_type  = scope_type;
				$scope.details_description = res.data.result.description;
					
				
			},
			function error(err) 
			{
				console.log(err);
			}
		);
	}

	// 修改（调用接口与“详情”相同，用于展示从服务器获取的IP规则）
	var __index = 0;
	$scope.edit = function($event, $index) {
		__index = $index;
		$http({
			url    : $scope.zsUrl+'digitalhome-boss/open/scopes/getScopesInfo/'+$scope.scopesId[$index]+'',
			method : 'GET',
		})
		.then(
			function success(res) {

				// 展示从服务器获取到的资源范围数据
                $scope.scopesId            = res.data.result.scopesId;
				$scope.details_code        = res.data.result.code;
				$scope.details_scope_name  = res.data.result.scopeName;
				$scope.details_scope_url   = res.data.result.scopeUri;
				$scope.details_scope_type  = res.data.result.scopeType;
				$scope.details_description = res.data.result.description;

				// 资源类型下拉框（select）
				$scope.which_resource_type = [
					{
						'id' 	: 0,
						'name'  : '系统资源',
					},
					{
						'id' 	: 1,
						'name'  : '用户资源',
					},
				];
					
			},
			function error(err) {
				console.log(err);
			}
		);

	}

	// 确认修改（用于修改原有的IP规则）
	$scope.confirmEdit = function($event) {

		// 修改资源范围数据（封装成JSON）
		var editData = {
			scopesId     : $scope.scopesId,
			code         : $scope.details_code,
			scopeName    : $scope.details_scope_name,
			scopeUri     : $scope.details_scope_url,
			scopeType    : $scope.details_scope_type,
			description  : $scope.details_description,
		}

		$http(
		{
			url   	    : $scope.zsUrl+'digitalhome-boss/open/scopes/modify',
			method      : 'POST',
			data        : JSON.stringify(editData), 	/* 将JSON发送给服务器 */
			dataType    : 'json',
			contentType : 'application/json;charset=UTF-8',
		})
		.then(function success(res) 
		{				
			// 重新加载页面
			$state.go("index.scopes",{},{reload:true});

		}, function error(err) 
		{
			// 重新加载页面
			$state.go("index.scopes",{},{reload:true});
			console.log(err);
		});
	}

	// 删除（保存当前点击对象的$index、this指向）
	var _this = '', _index = 0;
	$scope.delete = function($event, $index) {
		
		// 当前对象（this指向不变）
		_this = angular.element($event.target);
		// 每一行的序列号
		_index = $index;
	}

	// 确定删除（用于删除IP规则数据）
	$scope.confirmDel = function($event) {

		console.log(_index);
		$http
		({
			url: $scope.zsUrl+'digitalhome-boss/open/scopes/deleteInfo/'+$scope.scopesId[_index]+'',
			method: 'GET',
			data: { scopesId: $scope.scopesId[_index] }, /* 给服务器发送需要删除的数据对应的ID */
		})
		.then
		(
			function success(res) {
				console.log(_index);
				// result_code == '0000' 则删除，否则不删除
				if( '0000' == res.data.result_code )
				{
					_this.parents('tr').remove();
				}
				else 
				{
					console.log(res.data);
				}
			},
			function error(err) {
				console.log(err);
			}
		);

	}


}]);

